iT邦幫忙

2023 iThome 鐵人賽

DAY 21
0

今天我們要介紹的是 AWS 一個很夯的無伺服器應用 AWS Lambda

不過在介紹 AWS Lambda 之前

我們需要先了解一下甚麼是無伺服器應用

無伺服器應用

定義

無伺服器應用並非不使用伺服器

而是提供使用者編寫程式碼方法

開發者根據執行環境需求定義需要的資源並封裝程式應用

交由系統供應商自行配置機械的一種方式

開發者不需要再擔心基礎設施的建設

為什麼使用無伺服器運算?

擴展方便

比起傳統架構

雲端提供的無伺服器架構

更容易達到系統規範的 SLA 和 SLO

而且對於資源地擴展也更加快速

管理方便

虛擬化的架構下

我們需要定期維護虛擬機

為虛擬機上 Patch、升級

而無伺服器應用只需要專注在商業應用的開發

以及應用的環境版本升級即可

降低成本

傳統的架構通常需要一些基本的基礎設施

無伺服器應用通常只需要負擔執行階段的費用

而且是按需收費

因此不需要額外耗費心力思考 HA 該如何降低成本

常見的應用

AWS Lambda 和 Azure Function 都是有名的雲端無伺服器應用

AWS Lambda 除了 Java、Python、C# 這些常見的程式語言以外

也支援 Docker 的形式

只要撰寫方式符合規範

都可以正常執行於 AWS 的環境中

AWS Lambda

AWS Lambda 是甚麼

AWS Lambda 是一項運算服務

可讓您執行程式碼

無需佈建或管理伺服器

只需要使用 AWS Lambda 支援的程式語言進行撰寫擊佈署

AWS 就會在高可用性的運算基礎設施上執行您的程式碼

並執行所有運算資源的管理

Lambda 的使用時機

官方羅列以下幾種使用情境

  1. 檔案處理:使用 Amazon Simple Storage Service (Amazon S3),在上傳之後即時觸發 Lambda 資料處理程序。
  2. 串流處理:使用 Lambda 和 Amazon Kinesis 處理即時串流資料,以進行應用程式活動追蹤、交易訂單處理、點選流分析、資料清理、日誌篩選、索引編制、社交媒體分析、物聯網 (IoT) 裝置資料遙測以及計量。
  3. Web 應用程式:將 Lambda 與其他 AWS 服務結合,建置功能強大的 Web 應用程式,這些應用程式可自動縱向擴展和縮減,且以多個資料中心的高可用性組態執行。
  4. IoT 後端:使用 Lambda 建置無伺服器後端,用於處理 Web、行動裝置、IoT 和第三方 API 請求。
  5. 行動後端:使用 Lambda 和 Amazon API Gateway 建置後端,用於驗證和處理 API 請求。使用 AWS Amplify 輕鬆與 iOS、Android、Web 和 React Native 前端整合。

說了這麼多感覺好像甚麼都可以做

但是又不太確定可以實際應用在甚麼情境

大致上可以理解成當有些業務是可被獨立切割

像是資料蒐集或是 SNS 轉發通知

就很適合轉介到 AWS Lambda 進行處理

支援的程式語言

AWS Lambda 支援 Node.js、TypeScript、Python、Ruby、Java、Go、C#、PowerShell、Rust 等程式語言進行開發

當然也支援容器應用

AWS 其他服務整合

做為最經典的無伺服器應用

AWS Lambda 除了可單獨執行以外

亦可整合 AWS 大部分的應用做為資料整理的轉介站

  • API Gateway + AWS Lambda:這樣的組合近乎 Web Restful API 的應用
  • EventBridge + AWS Lambda:透過 Eventbridge 抓取 AWS 的事件,並藉由 AWS Lambda 採取發生事件後的行動
  • AWS Lambda + Amazon SNS:處理完的邏輯傳遞訂閱的通知到大家的手中

參考資料:

  1. 什麼是無伺服器計算?|無伺服器定義
  2. 雲端技術兩大重點概念:無伺服器架構與微型服務,都是為了讓工程師更有創造力
  3. 什麼是 AWS Lambda?
  4. 開啟資料整合微服務化 – 淺談 Change Data Capture (CDC) 及重要性,它如何實現資料同步?

上一篇
Day 20 API Gateway 介紹
下一篇
Day 22 使用 API Gateway + Lambda 實作 Restful 應用
系列文
上完 AWS 線上課程就打算應徵相關工作是否搞錯甚麼30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言